Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Hardware issue



  Telecom elements in WeChat

As an engineer who spends much time on focusing on WeChat like applications(Skype, Fring, Viber, Kik Messenger, WhatsApp, Talkbox, LINE, Kakao Talk) , I would like to share with you the telecom element in WeChat to show the inheritance and integration of traditional telecom services in the Internet service and applications.First, WeChat is an application to send messages, the fully IP-based messaging capabilities may replace the traditional telecom services such as SMS, MMS and VMS ,This is ver...

   WeChat,Telecom operator     2013-04-13 20:29:46

  Supercolliding a PHP array

Did you know that inserting 2^16 = 65536 specially crafted values into a normal PHP array can take 30 seconds? Normally this would take only 0.01 seconds. This is the code to reproduce it: <?php echo '<pre>'; $size = pow(2, 16); // 16 is just an example, could also be 15 or 17 $startTime = microtime(true); $array = array(); for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) { $array[$key] = 0; } $endTime = microtime(true); echo 'Inserting...

   PHP,Array,hashtable,Slow,Colliding     2011-12-29 09:02:01

  Check file readability in Java

File operation is quite platform dependent. Although Java is a cross platform programming language, the file operation in Java is also platform dependent. The obvious evidence is the file permission check. In Java, we can call canRead(), canWrite() and canExecutable() to check whether the program can read, write or execute the file specified. However, on Windows, when we call canRead() on a File object, we may get unexpected result. Actually, on Windows, when we call canRead() on a File object, ...

   Java,Files,Readable,Check     2013-12-05 06:10:15

  HeartBleed: Should C be blamed for the HeartBleed bug?

There is a discussion about the security of applications written in C on Hacker News recently after the report of HeartBleed bug in OpenSSL. In this discussion, some people are saying that the applications written in C are unsafe. It seems all or most of the faults should be laid on C. I think this is biased. The language itself should not be blamed.Safety is a relative term for programming languages. No language is absolutely safe. We claim some languages like Java and C# are safer than C/C++ b...

   C,HeartBleed,Analysis,Code review     2014-04-14 03:52:55

  Javascript Frameworks Are Too Small

A while back I stumbled upon a great post by Jean-Baptiste Queru. It describes the incredible depth of the modern technology stack. Layers upon layers of complex science, hardware, and software, each layer creating a simpler abstraction around the previous. This ultimately enables our paltry human brains to create amazing things that would otherwise be impossible (or really difficult). This is, in my opinion, the lifeblood of modern software development. For some reason, however, when i...

   JavaScript,Framework,Size,Small,jQuery     2012-01-10 07:20:59

  Cracks in the Foundation

PHP has been around for a long time, and it’s starting to show its age. From top to bottom, the language has creaky joints. I’ve decided to take a look at how things got to this point, and what can be (and is being) done about it. I start out pretty gloomy, but bear with me; I promise it gets better. In the Beginning, There Was Apache and CGI And there was much rejoicing. In 1994, Rasmus Lerdorf created the “Personal Home Page Tools,” a set of CGI binaries wri...

   PHP,History,Foundation design,Compatibility     2011-12-18 01:03:54

  do {...} while (0) in macros

If you are a C programmer, you must be familiar with macros. They are powerful and can help you ease your work if used correctly. However, if you don't define macros carefully, they may bite you and drive you crazy. In many C programs, you may see a special macro definition which may seem not so straightforward. Here is one example: #define __set_task_state(tsk, state_value) \ do { (tsk)->state = (state_value); } while (0) There are many this kind of macros which uses do{...}while(0)...

   C,macro,C++     2014-01-23 07:16:13

  Speed Hashing

A given hash uniquely represents a file, or any arbitrary collection of data. At least in theory. This is a 128-bit MD5 hash you're looking at above, so it can represent at most 2128 unique items, or 340 trillion trillion trillion. In reality the usable space is substantially less; you can start seeing significant collisions once you've filled half the space, but half of an impossibly large number is still impossibly large. Back in 2005, I wondered about the difference between a checksum and...

   Speed hashing,Security,MD5     2012-04-07 10:35:15

  SSH Security and You - /bin/false is *not* security

Backstory While at RIT around 2004 or 2005, I discovered that a few important machines at the datacenter allowed all students, faculty, and staff to authenticate against them via ssh. Everyone's shells appear to be set to /bin/false (or some derivative) on said machines, so the only thing you'll see after you authenticate is the login banner and your connection will close. I thought to myself, "Fine, no shell for me. I wonder if port forwarding works?" ...

   Linux,Security,/bin/false,SSH     2012-02-06 07:46:29

  Microsoft is transforming XBox into a PC controlled by expressions

According to the Voice of China "News Coverage" report. When Apple products are changing  the world, the original computer giant Microsoft is also quietly looking for their new foothold in the field of electronics. This time the breakthrough is from its game console Xbox.Xbox was originally a single function console, there are signs that Microsoft may be planning for the Xbox into the computer with new functions. The selling point of this new product lies in its function of communic...

   Microsoft,XBox,New PC,China     2012-04-01 06:57:04